﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MJM.SPP.EntidadesNegocio;
using System.Data;
using System.Data.SqlClient;
using MJM.CBD.Conn;

namespace MJM.SPP.AccesoDatos
{
    public class AsignacionTarAD
    {
        public int Insertar(AsignacionTarEN objAsignacionTarEN)
        {
            SqlConnection conn = new SqlConnection(Cadena.GetCadenaPadron());
            SqlCommand cmd = new SqlCommand("sp_i_T_WEB_ASITAR_Insertar", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            int codigo = 0;
            SqlParameter prmID, prmUsuario, prmUsuCrea, prmFecha, prmAnio;
            try
            {
                prmID = cmd.CreateParameter();
                prmID.Direction = ParameterDirection.ReturnValue;
                prmID.SqlDbType = SqlDbType.Int;
                cmd.Parameters.Add(prmID);

                prmUsuario = cmd.CreateParameter();
                prmUsuario.ParameterName = "@vUSUPAD_P_chUSU";
                prmUsuario.SqlDbType = SqlDbType.VarChar;
                prmUsuario.Value = objAsignacionTarEN.USUPAD_P_chUSU;
                cmd.Parameters.Add(prmUsuario);

                prmUsuCrea = cmd.CreateParameter();
                prmUsuCrea.ParameterName = "@vASITAR_chUSUCRE";
                prmUsuCrea.SqlDbType = SqlDbType.VarChar;
                prmUsuCrea.Value = objAsignacionTarEN.ASITAR_chUSUCRE;
                cmd.Parameters.Add(prmUsuCrea);

                prmFecha = cmd.CreateParameter();
                prmFecha.ParameterName = "@vASITAR_chFECREG";
                prmFecha.SqlDbType = SqlDbType.VarChar;
                prmFecha.Value = objAsignacionTarEN.ASITAR_chFECREG;
                cmd.Parameters.Add(prmFecha);

                prmAnio = cmd.CreateParameter();
                prmAnio.ParameterName = "@vASITAR_chANOCRE";
                prmAnio.SqlDbType = SqlDbType.VarChar;
                prmAnio.Value = DateTime.Now.Year.ToString();
                cmd.Parameters.Add(prmAnio);

                cmd.Connection.Open();
                cmd.ExecuteNonQuery();
                codigo = Convert.ToInt32(prmID.Value);

                cmd.Connection.Close();
                cmd.Dispose();
                conn.Dispose();
            }
            catch (Exception ex)
            {
                cmd.Dispose();
                conn.Dispose();
                return 0;
            }
            return codigo;
        }

        public List<AsignacionTarEN> Listar(String Usuario)
        {
            SqlConnection conn = new SqlConnection(Cadena.GetCadenaPadron());
            SqlCommand cmd = new SqlCommand("sp_s_T_WEB_ASITAR_Listar", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            SqlParameter prmUsuario;
            SqlDataReader dr;
            List<AsignacionTarEN> lst = new List<AsignacionTarEN>();
            AsignacionTarEN obj;
            try
            {
                prmUsuario = cmd.CreateParameter();
                prmUsuario.ParameterName = "@vUSUPAD_P_chUSU";
                prmUsuario.SqlDbType = SqlDbType.VarChar;
                prmUsuario.Value = Usuario;
                cmd.Parameters.Add(prmUsuario);
                cmd.Connection.Open();

                dr = cmd.ExecuteReader();
                while (dr.Read())
                {
                    obj = new AsignacionTarEN();
                    obj.ASITAR_P_inID = dr.GetInt32(0);
                    obj.ASITAR_chCODTAR = dr.GetString(1);
                    obj.USUPAD_P_chUSU = dr.GetString(2);
                    obj.ASITAR_chUSUCRE = dr.GetString(3);
                    obj.ASITAR_chFECREG = dr.GetString(4);
                    obj.ASITAR_chANOCRE = dr.GetString(5);
                    obj.ASITAR_inFLAELI = dr.GetInt32(6);
                    lst.Add(obj);
                }

                cmd.Connection.Close();
                cmd.Dispose();
                conn.Dispose();
            }
            catch (Exception ex)
            {
                cmd.Dispose();
                conn.Dispose();
                return null;
            }
            return lst;
        }

        public int Eliminar(int Id)
        {
            SqlConnection conn = new SqlConnection(Cadena.GetCadenaPadron());
            SqlCommand cmd = new SqlCommand("sp_u_T_WEB_ASITAR_Eliminar", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            SqlParameter prmID;
            try
            {
                prmID = cmd.CreateParameter();
                prmID.ParameterName = "@vASITAR_P_inID";
                prmID.SqlDbType = SqlDbType.Int;
                prmID.Value = Id;
                cmd.Parameters.Add(prmID);
                cmd.Connection.Open();
                cmd.ExecuteNonQuery();

                cmd.Connection.Close();
                cmd.Dispose();
                conn.Dispose();
            }
            catch (Exception ex)
            {
                cmd.Dispose();
                conn.Dispose();
                return 0;
            }

            return 1;
        }

        public int AsignarTarjeta(String Usuario, String Tarjeta,String UsuMod,String FecVenc,String FecModificacion)
        { //sp_u_T_WEB_ASITAR_Asignar
            int codigo = 1;
            SqlConnection conn = new SqlConnection(Cadena.GetCadenaPadron());
            SqlCommand cmd = new SqlCommand("sp_u_T_WEB_ASITAR_Asignar", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            SqlParameter prmID, prmUsuario,prmVencimiento,prmUsuMod,prmModificacion;
            try
            {
                prmID = cmd.CreateParameter();
                prmID.ParameterName = "@vASITAR_chCODTAR";
                prmID.SqlDbType = SqlDbType.VarChar;
                prmID.Value = Tarjeta;
                cmd.Parameters.Add(prmID);

                prmUsuario = cmd.CreateParameter();
                prmUsuario.ParameterName = "@vUSUPAD_P_chUSU";
                prmUsuario.SqlDbType = SqlDbType.VarChar;
                prmUsuario.Value = Usuario;
                cmd.Parameters.Add(prmUsuario);

                prmVencimiento = cmd.CreateParameter();
                prmVencimiento.ParameterName = "@vASITAR_chFECVEN";
                prmVencimiento.SqlDbType = SqlDbType.VarChar;
                prmVencimiento.Value = FecVenc;
                cmd.Parameters.Add(prmVencimiento);

                prmUsuMod = cmd.CreateParameter();
                prmUsuMod.ParameterName = "@vASITAR_chUSUMOD";
                prmUsuMod.SqlDbType = SqlDbType.VarChar;
                prmUsuMod.Value = UsuMod;
                cmd.Parameters.Add(prmUsuMod);

                prmModificacion = cmd.CreateParameter();
                prmModificacion.ParameterName = "@vASITAR_chFECASI";
                prmModificacion.SqlDbType = SqlDbType.VarChar;
                prmModificacion.Value = FecModificacion;
                cmd.Parameters.Add(prmModificacion);

                cmd.Connection.Open();
                cmd.ExecuteNonQuery();

                cmd.Connection.Close();
                cmd.Dispose();
                conn.Dispose();
            }
            catch(Exception ex)
            {
                codigo = 0;
                cmd.Dispose();
                conn.Dispose();
            }
            return codigo;
        }
    }
}
